Module isotope::parser[][src]

Expand description

A parser for isotope’s grammar. Generates an AST from input strings.

Constants

ASSIGN

The symbol for an assignment

BEGIN

The keyword for the beginning of a lifetime

BIVAR

The symbol for bivariance

BOOL

The type of boolean

CONSUMED

The symbol for a consuming usage

CONTRAVAR

The symbol for contravariance

COVAR

The symbol for covariance

EMPTY

The empty type

END

The keyword for the end of a lifetime

EX

The keyword for Ex function types

EXCOPY

The keyword for ExCopy function types

EXONCE

The keyword for ExOnce function types

FALSE

The false boolean constant

FN

The keyword for Fn function types

FNCOPY

The keyword for FnCopy function types

FNONCE

The keyword for FnOnce function types

FX

The keyword for Fx function types

FXONCE

The keyword for FxOnce function types

INSTANT

The keyword for a free instant declaration

INVAR

The symbol for invariance

LAMBDA

The keyword for closures

LET

The keyword for a let-statement

LIFETIME

The keyword for lifetimes

LIVE

The keyword for a live range

LOOSE

The symbol for loosening a typing judgement

NAT

The type of natural numbers

OBSERVED

The symbol for an observing usage

PARAM

The keyword for a parameter declaration

REL_CN

The symbol for a contradictory relation

REL_EQ

The symbol for an equality relation

REL_GE

The symbol for a “greater than or equal to” relation

REL_GT

The symbol for a “greater than” relation

REL_LE

The symbol for a “less than or equal to” relation

REL_LT

The symbol for a “less than” relation

REL_NE

The symbol for an inequality relation

REL_TV

The symbol for the trivial relation

SPECIAL_CHARACTERS

The set of special characters

STMT_SEP

The separator for statements

TRUE

The true boolean constant

TYPEOF

The typeof operator

TYPING

The symbol for a typing judgement

UNIT

The unit type

UNIVERSE

The keyword for a polymorphic typing universe

UNUSED

The symbol for a purely borrowing usage

USED

The symbol for a full usage

Functions

boolean

Parse a boolean

constraint

Parse an individual constraint on a lifetime or instant

constraints

Parse a set of constraints on a lifetime or instant

dependency

Parse a dependency

expr

Parse an isotope expression

fn_kind

Parse a function kind

ident

Parse a string forming a valid isotope identifier

instant

Parse a free instant

judgement

Parse a typing judgement

lambda

Parse a lambda function

let_

Parse a let statement

lifetime

Parse a lifetime

line_comment

Parse a single line comment

multiline_comment

Parse a multi-line comment.

natural

Parse a natural number literal

param

Parse a parameter

param_stmt

Parse a parameter statement

parametrized

Parse a parametrized value

pi

Parse a pi type

primitive

Parse an isotope primitive

relationship

Parse a relationship

scope

Parse a scope

sexpr

Parse an S-expression

statement

Parse an isotope statement

typeof_expr

Parse a typeof expression

u64_dec

Parse a decimal integer literal as a u64.

universe

Parse a typing universe

usage

Parse a usage glyph

variance

Parse a variance glyph

ws

Parse whitespace between isotope identifiers